// 我的页面js文件
Page({
  data: {
    userInfo: {
      id: '',
      nickName: '',
      avatarUrl: ''
    },
    unreadMessages: 2,
    showMessageModal: false,
    consultTypeList: ['请选择咨询类型', '留学咨询', '医疗咨询', '紧急求助', '其他问题'],
    consultTypeIndex: 0,
    messageContent: '',
    contactInfo: '',
    isEmergency: false
  },

  onLoad: function() {
    // 页面加载时执行
    console.log('我的页面加载');
    // 加载用户信息
    this.loadUserInfo();
    // 加载未读消息数量
    this.loadUnreadMessages();
  },

  onShow: function() {
    // 页面显示时执行
    // 重新加载用户信息
    this.loadUserInfo();
  },

  // 加载用户信息
  loadUserInfo: function() {
    wx.showLoading({
      title: '加载中',
    });

    // 模拟获取用户信息
    // 实际开发中应该调用接口获取用户信息
    setTimeout(() => {
      wx.hideLoading();
      // 这里简单模拟用户信息
      const userInfo = {
        id: '10086',
        nickName: '留学生小李',
        avatarUrl: '/images/user_avatar.png'
      };
      this.setData({
        userInfo: userInfo
      });
    }, 1000);
  },

  // 加载未读消息数量
  loadUnreadMessages: function() {
    // 实际开发中应该调用接口获取未读消息数量
    // 这里简单模拟未读消息数量
  },

  // 选择头像
  chooseAvatar: function() {
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        const tempFilePath = res.tempFiles[0].tempFilePath;
        // 这里可以上传头像到服务器
        this.uploadAvatar(tempFilePath);
      },
      fail: (err) => {
        console.log('选择头像失败', err);
      }
    });
  },

  // 上传头像
  uploadAvatar: function(filePath) {
    wx.showLoading({
      title: '上传中',
    });

    // 模拟上传头像
    // 实际开发中应该调用上传接口
    setTimeout(() => {
      wx.hideLoading();
      this.setData({
        'userInfo.avatarUrl': filePath
      });
      wx.showToast({
        title: '头像上传成功',
        icon: 'success'
      });
    }, 1500);
  },

  // 编辑用户信息
  editUserInfo: function() {
    wx.navigateTo({
      url: '/pages/user/edit'
    });
  },

  // 导航到设置页面
  navigateToSettings: function() {
    wx.navigateTo({
      url: '/pages/settings/index'
    });
  },

  // 导航到我的社团页面
  navigateToMyAssociations: function() {
    wx.navigateTo({
      url: '/pages/association/my'
    });
  },

  // 导航到我的贴士页面
  navigateToMyTips: function() {
    wx.navigateTo({
      url: '/pages/tips/my'
    });
  },

  // 导航到我的收藏页面
  navigateToMyCollections: function() {
    wx.navigateTo({
      url: '/pages/collection/index'
    });
  },

  // 导航到医疗咨询页面
  navigateToMedicalConsult: function() {
    wx.navigateTo({
      url: '/pages/consultation/medical'
    });
  },

  // 导航到紧急咨询页面
  navigateToEmergencyConsult: function() {
    wx.navigateTo({
      url: '/pages/consultation/emergency'
    });
  },

  // 导航到关于我们页面
  navigateToAboutUs: function() {
    wx.navigateTo({
      url: '/pages/about/index'
    });
  },

  // 导航到隐私政策页面
  navigateToPrivacyPolicy: function() {
    wx.navigateTo({
      url: '/pages/privacy/index'
    });
  },

  // 导航到用户协议页面
  navigateToUserAgreement: function() {
    wx.navigateTo({
      url: '/pages/agreement/index'
    });
  },

  // 打开留言表单
  openMessageForm: function() {
    this.setData({
      showMessageModal: true,
      consultTypeIndex: 0,
      messageContent: '',
      contactInfo: '',
      isEmergency: false
    });
  },

  // 关闭留言表单
  closeMessageModal: function() {
    this.setData({
      showMessageModal: false
    });
  },

  // 阻止事件冒泡
  stopPropagation: function(e) {
    e.stopPropagation();
  },

  // 咨询类型改变
  onConsultTypeChange: function(e) {
    this.setData({
      consultTypeIndex: e.detail.value
    });
  },

  // 留言内容输入
  onMessageInput: function(e) {
    this.setData({
      messageContent: e.detail.value
    });
  },

  // 联系方式输入
  onContactInput: function(e) {
    this.setData({
      contactInfo: e.detail.value
    });
  },

  // 是否紧急改变
  onEmergencyChange: function(e) {
    this.setData({
      isEmergency: e.detail.value
    });
  },

  // 提交留言
  submitMessage: function() {
    const { consultTypeIndex, messageContent, contactInfo, isEmergency } = this.data;
    
    // 表单验证
    if (consultTypeIndex === 0) {
      wx.showToast({
        title: '请选择咨询类型',
        icon: 'none'
      });
      return;
    }
    
    if (!messageContent.trim()) {
      wx.showToast({
        title: '请输入留言内容',
        icon: 'none'
      });
      return;
    }
    
    if (!contactInfo.trim()) {
      wx.showToast({
        title: '请输入联系方式',
        icon: 'none'
      });
      return;
    }

    wx.showLoading({
      title: '提交中',
    });

    // 模拟提交留言
    // 实际开发中应该调用提交接口
    setTimeout(() => {
      wx.hideLoading();
      
      wx.showToast({
        title: '留言提交成功',
        icon: 'success'
      });
      
      // 关闭弹窗
      this.closeMessageModal();
      
      // 如果是紧急留言，显示星级提醒
      if (isEmergency) {
        wx.showModal({
          title: '紧急提醒',
          content: '您的紧急留言已提交，我们将尽快处理，请保持电话畅通。',
          showCancel: false
        });
      }
    }, 1500);
  }
});